package org.jeecg.modules.bl.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.bl.entity.BlSubExpenses;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.List;

/**
 * @Description: 计费清单
 * @Author: jeecg-boot
 * @Date:   2022-02-13
 * @Version: V1.0
 */
@Data
@ApiModel(value="mws_t_bl_expensesPage对象", description="计费清单")
public class BlExpensesPage {

	/**ID*/
	@ApiModelProperty(value = "ID")
    private java.lang.String id;
	/**户号*/
	//@Excel(name = "户号", width = 15, dictTable = "mws_t_arc_customers", dicText = "code", dicCode = "id")
    //@Dict(dictTable = "mws_t_arc_customers", dicText = "code", dicCode = "id")
	@ApiModelProperty(value = "户号")
    private java.lang.String customerId;
	/**户名*/
	@Excel(name = "户名", width = 15)
	@ApiModelProperty(value = "户名")
    private java.lang.String cusName;
	/**计量清单*/
	@Excel(name = "计量清单", width = 15)
	@ApiModelProperty(value = "计量清单")
    private java.lang.String measureId;
	/**用水性质*/
	@Excel(name = "用水性质", width = 15, dictTable = "mws_t_base_natures", dicText = "name", dicCode = "id")
    @Dict(dictTable = "mws_t_base_natures", dicText = "name", dicCode = "id")
	@ApiModelProperty(value = "用水性质")
    private java.lang.String natureId;
	/**抄表月份*/
	@Excel(name = "抄表月份", width = 15)
	@ApiModelProperty(value = "抄表月份")
    private java.lang.String readMonth;
	/**财务日期*/
	@Excel(name = "财务日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "财务日期")
    private java.util.Date financialDate;
	/**财务月份*/
	@Excel(name = "财务月份", width = 15)
	@ApiModelProperty(value = "财务月份")
    private java.lang.String financialMonth;
	/**计费水量*/
	@Excel(name = "计费水量", width = 15)
	@ApiModelProperty(value = "计费水量")
    private java.math.BigDecimal amount;
	/**合计金额-仅水费 -01*/
	@Excel(name = "合计金额", width = 15)
	@ApiModelProperty(value = "合计金额")
    private java.math.BigDecimal totalMoney;
	/**违约金-02*/
	@Excel(name = "违约金", width = 15)
	@ApiModelProperty(value = "违约金")
	private java.math.BigDecimal penalty;
	//03
	@Excel(name = "污水金额", width = 15)
	@ApiModelProperty(value = "污水金额")
	private java.math.BigDecimal wuMoney;
	/**杂项金额 04*/
	@Excel(name = "杂项金额", width = 15)
	@ApiModelProperty(value = "杂项金额")
	private java.math.BigDecimal alienMoney;
	//05
	@Excel(name = "二次加压金额", width = 15)
	@ApiModelProperty(value = "二次加压金额")
	private java.math.BigDecimal jyMoney;
	//06
	@Excel(name = "季节加价费金额", width = 15)
	@ApiModelProperty(value = "季节加价费金额")
	private java.math.BigDecimal jiMoney;
	//07
	@Excel(name = "垃圾费金额", width = 15)
	@ApiModelProperty(value = "垃圾费金额")
	private java.math.BigDecimal ljMoney;

	/**违约天数*/
	@Excel(name = "违约天数", width = 15)
	@ApiModelProperty(value = "违约天数")
    private java.lang.Integer penaltyDay;
	/**增值税金额*/
	@Excel(name = "增值税金额", width = 15)
	@ApiModelProperty(value = "增值税金额")
    private java.math.BigDecimal vatMoney;
	/**折扣优惠金额*/
	@Excel(name = "折扣优惠金额", width = 15)
	@ApiModelProperty(value = "折扣优惠金额")
	private java.math.BigDecimal discountMoney;
	/**计费后减免金额*/
	@Excel(name = "减免金额", width = 15)
	@ApiModelProperty(value = "减免金额")
	private java.math.BigDecimal derateMoney;

	/**折后金额= 总金额（水费）-折扣优惠金额-减免+增值税金额+污水+垃圾+季加+二压+杂项 */
	@Excel(name = "折后金额", width = 15)
	@ApiModelProperty(value = "折后金额")
    private java.math.BigDecimal money;

	/**抄表本*/
	@Excel(name = "抄表本", width = 15, dictTable = "mws_t_mr_books", dicText = "name", dicCode = "id")
    @Dict(dictTable = "mws_t_mr_books", dicText = "name", dicCode = "id")
	@ApiModelProperty(value = "抄表本")
    private java.lang.String bookId;
	/**抄表员*/
	@Excel(name = "抄表员", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@ApiModelProperty(value = "抄表员")
    private java.lang.String readerId;
	/**冲账标志,标记该笔费用是冲账费用，某些地方不需要显示*/
	@Excel(name = "冲账标志,标记该笔费用是冲账费用，某些地方不需要显示", width = 15, dicCode = "yn")
    @Dict(dicCode = "yn")
	@ApiModelProperty(value = "冲账标志,标记该笔费用是冲账费用，某些地方不需要显示")
    private java.lang.Integer isStruck;
	/**作废标志*/
	@Excel(name = "作废标志", width = 15, dicCode = "yn")
    @Dict(dicCode = "yn")
	@ApiModelProperty(value = "作废标志")
    private java.lang.Integer isValid;
	/**用水价格*/
	@Excel(name = "用水价格", width = 15)
	@ApiModelProperty(value = "用水价格")
    private java.lang.String priceId;
	/**创建人*/
	@ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
	/**更新人*/
	@ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
	/**更新时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "更新时间")
    private java.util.Date updateTime;
	/**部门编码*/
	@ApiModelProperty(value = "部门编码")
    private java.lang.String sysOrgCode;
	/**是否删除*/
	@Excel(name = "是否删除", width = 15)
	@ApiModelProperty(value = "是否删除")
    private java.lang.Integer delFlag;
	/**租户网点*/
	@Excel(name = "租户网点", width = 15)
	@ApiModelProperty(value = "租户网点")
    private java.lang.Integer tenantId;

	@ExcelCollection(name="计费明细")
	@ApiModelProperty(value = "计费明细")
	private List<BlSubExpenses> blSubExpensesList;

}
